package com.yifang.yibingproject.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifang.yibingproject.dto.RoleDTO;
import com.yifang.yibingproject.dto.SysMenuTreeDTO;
import com.yifang.yibingproject.entity.SysRoleEntity;

import java.util.List;
import java.util.Set;


public interface SysRoleService extends IService<SysRoleEntity> {


    /**
     * 根据ID集合获取权限集合
     * @param ids
     * @return
     */
    List<SysRoleEntity> getListByRoleIds(List<Long> ids);


    String add(String name, String description);

    String update(RoleDTO dto);

    String del(Long id);

    String enable(String id);

    String disable(String id);

    /**
     * 给角色绑定权限
     * @param roleId
     * @param authIds
     * @return
     */
    String bindAuth(Long roleId, Set<Long> authIds);

    Page<RoleDTO> list(int pageNo, int pageSize);

    List<RoleDTO> listAll();

    /**
     * 给角色绑定菜单
     * @param roleId
     * @param menuIds
     * @return
     */
    String bindMenu(Long roleId, Set<Long> menuIds);

    List<SysMenuTreeDTO> menuTree(Long id);

    RoleDTO get(String id);

    /**
     * 根据用户ID获取用户角色名称集合
     * @param userId
     * @return
     */
    List<String> getRoleNameByUserId(Long userId);
}
